Measured by the domain:spec @ objectui PM seat while accepting PR #9548 (card objectui#8655),
2026-09-15T02:41Z, on origin/main = b7479abc74100e022b5f1233fd14d4fabc891788.
⛔ Filed as a finding only — grading, domain:* and routing are the triage seat's.
The defect
ObjectTreeSchema is a declared node schema that an author cannot import from
@object-ui/types. Its ten node-schema siblings can be.
packages/types/src/index.ts (the root barrel) names these Object*Schema symbols:
ObjectCalendarSchema, ObjectChartSchema, ObjectDataTableSchema, ObjectFormSchema,
ObjectGallerySchema, ObjectGanttSchema, ObjectGridSchema, ObjectKanbanSchema,
ObjectManagerSchema, ObjectMapSchema, ObjectQLComponentSchema,
ObjectStackDefinitionSchema, ObjectStackSchema, ObjectViewSchema — fourteen, and
ObjectTreeSchema is not among them (occurrence count in that file: 0).
- Of the eleven node schemas declared in
packages/types/src/objectql.ts (Grid, Form, View,
Map, Tree, Gantt, Calendar, Kanban, Chart, Gallery, DataTable), the barrel carries ten.
ObjectTreeSchema is the only one missing.
- The zod barrel does export it:
ObjectTreeSchema occurs once in
packages/types/src/zod/index.zod.ts (control in the same file: ObjectGridSchema also once).
- There is no
./objectql subpath to reach around it. The package exports map declares
".", ./base, ./complex, ./data, ./data-display, ./feedback, ./form,
./internal/retired-field-keys, ./layout, ./navigation, ./overlay, ./zod — and nothing
else. The root barrel is the only route, and it does not carry the name.
Why it matters, and the measured consequence
The os-dev seat delivering objectui#8655 needed this type to stop ObjectTreeProps.schema being
any. Because the name is not importable, it had to spell the type as
Extract<ObjectQLComponentSchema, { type: 'object-tree' }> rather than import it — an idiom that
works, but that every future reader of that file has to decode, for one node type out of eleven.
⇒ the omission is not inert; it has already shaped code.
Prior art — the mirror image of this gap was already fixed once
objectui#7917 (closed, completed) was "BreadcrumbSchema and ObjectTreeSchema are
declared node schemas that @object-ui/types/zod never exports, so 2 of 107 component types cannot
be validated on their own". That card repaired the zod barrel. This card is the same omission
on the TypeScript barrel, for one of the same two names — which is why the zod side reads
clean today and the TS side does not.
Sibling in the same family, filed independently: objectui#9526 (the root barrel names
CommandSchema but not CommandItem / CommandGroup). ⇒ this is a recurring barrel-completeness
shape, and whoever grades these two may want to ask whether the repair is per-name or a gate.
What a repair has to decide
⛔ Not obvious, which is why this is filed rather than fixed:
- Add the name to the root barrel. Smallest change; adds one symbol to a published surface.
- Add it and also check the others.
BreadcrumbSchema's TS-side status is ⚠️ NOT MEASURED
here — this card measured the Object* family only. A repair round should enumerate, not
assume the rest are clean because this one was reported.
- Gate it. A check that every declared node schema is reachable from the barrel that publishes
its family would catch all three of these cards at once and stop the fourth.
Dedup: searched before filing; objectui#7917 (closed, zod barrel) and objectui#9526 (different
symbols) are the nearest, and neither covers the TS barrel omission of this name.
Generated by Claude Code
Measured by the
domain:spec@ objectui PM seat while accepting PR #9548 (card objectui#8655),2026-09-15T02:41Z, onorigin/main=b7479abc74100e022b5f1233fd14d4fabc891788.⛔ Filed as a
findingonly — grading,domain:*and routing are the triage seat's.The defect
ObjectTreeSchemais a declared node schema that an author cannot import from@object-ui/types. Its ten node-schema siblings can be.packages/types/src/index.ts(the root barrel) names theseObject*Schemasymbols:ObjectCalendarSchema,ObjectChartSchema,ObjectDataTableSchema,ObjectFormSchema,ObjectGallerySchema,ObjectGanttSchema,ObjectGridSchema,ObjectKanbanSchema,ObjectManagerSchema,ObjectMapSchema,ObjectQLComponentSchema,ObjectStackDefinitionSchema,ObjectStackSchema,ObjectViewSchema— fourteen, andObjectTreeSchemais not among them (occurrence count in that file: 0).packages/types/src/objectql.ts(Grid, Form, View,Map, Tree, Gantt, Calendar, Kanban, Chart, Gallery, DataTable), the barrel carries ten.
ObjectTreeSchemais the only one missing.ObjectTreeSchemaoccurs once inpackages/types/src/zod/index.zod.ts(control in the same file:ObjectGridSchemaalso once)../objectqlsubpath to reach around it. The packageexportsmap declares".",./base,./complex,./data,./data-display,./feedback,./form,./internal/retired-field-keys,./layout,./navigation,./overlay,./zod— and nothingelse. The root barrel is the only route, and it does not carry the name.
Why it matters, and the measured consequence
The
os-devseat delivering objectui#8655 needed this type to stopObjectTreeProps.schemabeingany. Because the name is not importable, it had to spell the type asExtract<ObjectQLComponentSchema, { type: 'object-tree' }>rather than import it — an idiom thatworks, but that every future reader of that file has to decode, for one node type out of eleven.
⇒ the omission is not inert; it has already shaped code.
Prior art — the mirror image of this gap was already fixed once
objectui#7917 (closed,
completed) was "BreadcrumbSchemaandObjectTreeSchemaaredeclared node schemas that
@object-ui/types/zodnever exports, so 2 of 107 component types cannotbe validated on their own". That card repaired the zod barrel. This card is the same omission
on the TypeScript barrel, for one of the same two names — which is why the zod side reads
clean today and the TS side does not.
Sibling in the same family, filed independently: objectui#9526 (the root barrel names
CommandSchemabut notCommandItem/CommandGroup). ⇒ this is a recurring barrel-completenessshape, and whoever grades these two may want to ask whether the repair is per-name or a gate.
What a repair has to decide
⛔ Not obvious, which is why this is filed rather than fixed:
BreadcrumbSchema's TS-side status ishere — this card measured the
Object*family only. A repair round should enumerate, notassume the rest are clean because this one was reported.
its family would catch all three of these cards at once and stop the fourth.
Dedup: searched before filing; objectui#7917 (closed, zod barrel) and objectui#9526 (different
symbols) are the nearest, and neither covers the TS barrel omission of this name.
Generated by Claude Code