Filed by the director seat (summon #21, session_01QVMnxyWBx8cAQMsV6akDV9) executing the maintainer's principle ruling on decision batch #112, verbatim and untranslated: 「这批的问题,我们的项目以objectstack 协议为准,文档应该以实际实现为准。」 (director chat, 2026-09-10T10:5xZ). Routed domain:spec by the anchoring rule (the liveness ledger and ChartConfigSchema's describe live in packages/spec); pm:queue. ⛔ Not claimed.
Two halves, one card
1. The ledger row is false and must say what is implemented (文档以实际实现为准). packages/spec/liveness/dashboard.json, row widgets.children.chartConfig, reads "status": "live" with evidence "chart-config bag forwarded to the chart renderer". Measured on objectui (objectui#4044 body and 5596345518): DashboardRenderer.tsx contains chartConfig 0 times; the ADR-0021 dataset path lifts the bag and reads showLegend only, its own comment conceding "the rest of chartConfig stays unforwarded". chartConfig has no children, so none of the 12 keys has a per-key verdict. Deliverable: give the row children, one per ChartConfigSchema key, each with the verdict the objectui code actually supports today (re-measure; objectstack#7016's per-key table is the starting point, ⛔ not the answer), and replace the false evidence sentence. This half is a documentation repair and needs no ruling.
2. The protocol must say what wins when an authored chartConfig axis meets a dataset-derived one (以协议为准). packages/spec/src/ui/dashboard.zod.ts:365 declares chartConfig: ChartConfigSchema.optional() on the widget, so a dashboard author may write chartConfig.xAxis / yAxis / series on a dataset-bound widget — while ADR-0021's dataset shape derives axes and series from the dataset selection. objectui#4044 is ruled to implement the protocol (forward chartConfig on the dashboard face) and needs the precedence for those three keys. Read ADR-0021 and ChartConfigSchema's describe/docblocks: if the protocol already states precedence (authored overrides derived, or derived wins and the keys are ignored-with-diagnostic on dataset widgets), write it into the chartConfig describe and the ledger note and cite it; if the protocol is silent, that is a protocol decision — file the fork as a needs-user-decision card with the four-facet block (options: authored wins / derived wins with loud refusal / the three keys refused by name on dataset-bound widgets) and stop.
Acceptance
- Ledger: 12
children rows, each verdict backed by an objectui read site or a measured absence; the live evidence names a real forwarding site or is replaced.
- Protocol:
ChartConfigSchema (or DashboardWidgetSchema.chartConfig) describe states the precedence with a citation, or a decision card exists. Clause-②: no unless the describe changes an accept set.
- objectui#4044 names this card in its body; its implementation of the three derived keys waits for this half.
Refs: objectui#4044 · objectstack#7016 (v17 per-key forwarding) · objectstack#7017 (ledger wording, closed) · ADR-0021 · ADR-0049.
Generated by Claude Code
Filed by the director seat (summon #21,
session_01QVMnxyWBx8cAQMsV6akDV9) executing the maintainer's principle ruling on decision batch #112, verbatim and untranslated: 「这批的问题,我们的项目以objectstack 协议为准,文档应该以实际实现为准。」 (director chat, 2026-09-10T10:5xZ). Routeddomain:specby the anchoring rule (the liveness ledger andChartConfigSchema's describe live inpackages/spec);pm:queue. ⛔ Not claimed.Two halves, one card
1. The ledger row is false and must say what is implemented (文档以实际实现为准).
packages/spec/liveness/dashboard.json, rowwidgets.children.chartConfig, reads"status": "live"with evidence "chart-config bag forwarded to the chart renderer". Measured on objectui (objectui#4044 body and 5596345518):DashboardRenderer.tsxcontainschartConfig0 times; the ADR-0021 dataset path lifts the bag and readsshowLegendonly, its own comment conceding "the rest ofchartConfigstays unforwarded".chartConfighas nochildren, so none of the 12 keys has a per-key verdict. Deliverable: give the rowchildren, one perChartConfigSchemakey, each with the verdict the objectui code actually supports today (re-measure; objectstack#7016's per-key table is the starting point, ⛔ not the answer), and replace the false evidence sentence. This half is a documentation repair and needs no ruling.2. The protocol must say what wins when an authored
chartConfigaxis meets a dataset-derived one (以协议为准).packages/spec/src/ui/dashboard.zod.ts:365declareschartConfig: ChartConfigSchema.optional()on the widget, so a dashboard author may writechartConfig.xAxis/yAxis/serieson a dataset-bound widget — while ADR-0021's dataset shape derives axes and series from the dataset selection. objectui#4044 is ruled to implement the protocol (forwardchartConfigon the dashboard face) and needs the precedence for those three keys. Read ADR-0021 andChartConfigSchema's describe/docblocks: if the protocol already states precedence (authored overrides derived, or derived wins and the keys are ignored-with-diagnostic on dataset widgets), write it into thechartConfigdescribe and the ledger note and cite it; if the protocol is silent, that is a protocol decision — file the fork as aneeds-user-decisioncard with the four-facet block (options: authored wins / derived wins with loud refusal / the three keys refused by name on dataset-bound widgets) and stop.Acceptance
childrenrows, each verdict backed by an objectui read site or a measured absence; theliveevidence names a real forwarding site or is replaced.ChartConfigSchema(orDashboardWidgetSchema.chartConfig) describe states the precedence with a citation, or a decision card exists.Clause-②: nounless the describe changes an accept set.Refs: objectui#4044 · objectstack#7016 (v17 per-key forwarding) · objectstack#7017 (ledger wording, closed) · ADR-0021 · ADR-0049.
Generated by Claude Code