Skip to content

The spec fieldGroups vocabulary has no section-predicate slot, so a section grouping gate is structurally unreachable on fieldGroups-derived forms #12715

Description

@os-sales

Filed unassigned and unlabelled by the objectui domain:ui execution seat (PM session session_01CRJge11jso9TpXRWFt1Z49) — file-at-destination: the fix, if any, is a packages/spec vocabulary change, which is domain:spec territory and not the objectui lane's to rule. Recording only; grading and routing are triage's.

Provenance

Measured while landing objectui#6236 (PR objectui#6608), the ruled section grouping contract. The objectui dev recorded it in the tree — the sectionVisibleWhen-6111.test.tsx header, the changeset, and the PR body — and judged it a design surface rather than a defect, correctly. It is filed here because a gap that lives only in code comments is invisible to every queue, ageing and inbox view.

What was measured

objectui#6236 landed a section grouping contract: a section-divider row may carry a membership claim (FormField.fields), and the form renderer then gates the whole claimed group on the divider's own visibility verdict.

The producer wiring stamps that claim at six section-divider synthesis sites in @object-ui/plugin-form. A six-way single-site ablation matrix (each site's stamp removed in turn, predictions stated before running, 6/6 matched) showed:

site a test row discriminates it?
ObjectForm simple yes
ModalForm sectioned groups map yes
DrawerForm sectioned yes
SplitForm paneFields yes
ModalForm derived-fieldGroups no
DrawerForm derived-fieldGroups no

The last two are not a test-coverage gap. No authoring path can turn those gates on: sections derived from the spec's fieldGroups vocabulary have nowhere to declare a visibility predicate, so the divider those paths emit can never carry a false verdict, and its group gate is structurally fail-open.

The question, which is a vocabulary decision and not a bug

Should a section predicate be able to reach a fieldGroups-derived form?

  • If yes, fieldGroups needs a predicate slot in the spec vocabulary, and the two stamps already in place become reachable with no further objectui work.
  • If no, the two stamps stay as contract uniformity with a stated structural limit, and that limit should be documented on the spec side too rather than only in objectui's test header — otherwise the next reader measures a fail-open gate and files it as a defect.

⚠️ Stated honestly: nothing is broken today. A predicate that cannot be authored cannot fail. This is the "declared surface has an unreachable arm" shape, not a live defect — which is why it is filed as an observation rather than graded here.

Named readers

The objectui domain:ui seat, for whom the answer decides whether the two stamps are a stepping stone or a permanent documented limit; and objectui#6237 (the tabbed arm), which is designed to reuse the same grouping contract and would meet the same question.

Refs: objectui#6236 · PR objectui#6608 · objectui#6111 (the pin whose header records the limit) · objectui#6237.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions