Filed by the director seat (session_01WCEaPsmKY4UyoivKkkaUHt) executing the ruling on objectui#8348 — batch #136 item 3, maintainer 「同意」 on the seat's recommendation Q1-C. ⛔ Not a decision; execution of a protocol correction the maintainer ruled.
What is wrong
packages/spec/src/ui/component.zod.ts :3296–:3302 — the object-bound SDUI block rows of ComponentPropsMap (#7751, maintainer ruling 2026-08-12 direction A, 「key sets derived from the objectui renderers' own read points」):
'object-grid' · 'object-metric' · 'object-kanban' · 'object-calendar' · 'object-form' · 'object-master-detail-form'
with object-chart recorded as deliberately absent. object-map, object-gantt and object-tree are absent with no such note: they were not enumerated, not ruled out.
objectui#8348 was ruled 「以协议为准」 (batch #83): every renderer on the record-source.ts ladder honours under data exactly the shape its spec row declares. PR objectui#9234 implemented that for all five ladder blocks and found the rule cannot resolve for three of them — map and gantt were judged against objectui's own ObjectMapSchema.data / ObjectGanttSchema.data (@object-ui/types, both ViewDataSchema) for lack of a protocol row, and tree has no data row on any face and was left with its rung-1 read marked undeclared. 「The spec decides」 is true for two blocks of five, and objectui's mirror is acting as the authority for two more.
What to build
Add 'object-map', 'object-gantt' and 'object-tree' rows to ComponentPropsMap, each derived the #7751 way — from the objectui renderer's own read points (packages/plugin-map, packages/plugin-gantt, packages/plugin-tree), ⛔ not from @object-ui/types' mirror and ⛔ not by copying ObjectCalendarPropsSchema. For data specifically: map and gantt declare the ViewData object arm the renderers read today (matching the mirror); tree's row declares whatever its renderer's read points support — if the renderer's authored surface has no data, the row declares none, and the objectui side then stops honouring it (协议没有的能力删).
The objectBlockHistory(...) entry, the reference rail and the vocabulary tests that pin the row set (component-reference-rail.test.ts, component-type-vocabulary.test.ts) move with the rows. Changeset: minor on @objectstack/spec (new declared rows; nothing retired).
Suggested acceptance
Governing text
Refs: objectui#8348 · PR objectui#9234 · objectui#9239 (calendar mirror contradiction, separate) · #7751
Generated by Claude Code
Filed by the director seat (
session_01WCEaPsmKY4UyoivKkkaUHt) executing the ruling on objectui#8348 — batch #136 item 3, maintainer 「同意」 on the seat's recommendation Q1-C. ⛔ Not a decision; execution of a protocol correction the maintainer ruled.What is wrong
packages/spec/src/ui/component.zod.ts:3296–:3302 — the object-bound SDUI block rows ofComponentPropsMap(#7751, maintainer ruling 2026-08-12 direction A, 「key sets derived from the objectui renderers' own read points」):with
object-chartrecorded as deliberately absent.object-map,object-ganttandobject-treeare absent with no such note: they were not enumerated, not ruled out.objectui#8348 was ruled 「以协议为准」 (batch #83): every renderer on the
record-source.tsladder honours underdataexactly the shape its spec row declares. PR objectui#9234 implemented that for all five ladder blocks and found the rule cannot resolve for three of them — map and gantt were judged against objectui's ownObjectMapSchema.data/ObjectGanttSchema.data(@object-ui/types, bothViewDataSchema) for lack of a protocol row, and tree has nodatarow on any face and was left with its rung-1 read markedundeclared. 「The spec decides」 is true for two blocks of five, and objectui's mirror is acting as the authority for two more.What to build
Add
'object-map','object-gantt'and'object-tree'rows toComponentPropsMap, each derived the #7751 way — from the objectui renderer's own read points (packages/plugin-map,packages/plugin-gantt,packages/plugin-tree), ⛔ not from@object-ui/types' mirror and ⛔ not by copyingObjectCalendarPropsSchema. Fordataspecifically: map and gantt declare theViewDataobject arm the renderers read today (matching the mirror); tree's row declares whatever its renderer's read points support — if the renderer's authored surface has nodata, the row declares none, and the objectui side then stops honouring it (协议没有的能力删).The
objectBlockHistory(...)entry, the reference rail and the vocabulary tests that pin the row set (component-reference-rail.test.ts,component-type-vocabulary.test.ts) move with the rows. Changeset:minoron@objectstack/spec(new declared rows; nothing retired).Suggested acceptance
ComponentPropsMapcarries the three rows;Object.keys(ComponentPropsMap)pins list them; theobject-chartabsence note is untouched.propertiesis accepted in silence — the props bag is a passthrough record and the SDUI props gate has no schema to dispatch forobject-*blocks #7751 derivation table extended by three rows, posted on the PR).pm:blockedon this card) resumes when this lands: its remaining slice judges map / gantt / tree against their new rows.Governing text
propertiesis accepted in silence — the props bag is a passthrough record and the SDUI props gate has no schema to dispatch forobject-*blocks #7751 maintainer ruling 2026-08-12 direction A (the derivation method).Refs: objectui#8348 · PR objectui#9234 · objectui#9239 (calendar mirror contradiction, separate) · #7751
Generated by Claude Code