You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
ChartSchema declares neither chart-level data nor xAxisKey — yet its own JSDoc teaches both, so the corrected chart model documents keys only BaseSchema's index signature admits #7549
Split out of #7112 by the triage seat (R+126). That card fixes five documentation and example sites that teach the retired inline series[].data model; it names this as "a separate contract question [that] should not be settled inside a docs pass" and is right. Filing it so the question is a card rather than a paragraph — a pending question written only in a comment is invisible to candidate queries, sweeps and aging alerts.
os-decision-facets
Measured — tree origin/main045d20b, read 2026-09-03T20:00:23Z
type · chartType · title · description · categories · series · height · width · showLegend · showGrid · animate · config
⇒ No chart-level data. No xAxisKey.
But both exist elsewhere in the same file.xAxisKey?: string is declared at :1923, on the narrower renderer-level schema whose docblock (:1896) reads "(ChartBarRenderer) forwards exactly data, dataKey, xAxisKey…", and mirrored in zod at data-display.zod.ts:552.
⚠️ ⛔ Precision, because the loose version of this claim is false: xAxisKey is not undeclared in packages/types. It is undeclared on ChartSchema. I checked, having first run a control that returned 6 hits in data-display.ts — which would have read as "declared" had I stopped there.
⭐ The contradiction is already inside the declaration, not only in the docs
#7112 frames this as five external pages teaching a model the type does not declare. It is closer to home than that — ChartSchema's own JSDoc teaches it:
:1335 — "…and the category axis comes from xAxisKey / xAxis. That is the model…"
:1424 — "The category axis comes from xAxisKey / xAxis. This docblock read…"
:1364 — the categories tombstone, pointing the author at the same replacement
⇒ The type's docblock directs authors to keys the type does not declare, which survive only through BaseSchema's index signature. Fixing the five external pages without answering this reproduces the same defect in the corrected text — which is exactly why #7112 fenced it out.
四棱
① 长期正确性(主导) —— 渲染器读的是 chart-level data + xAxisKey,声明面却只在一个更窄的 renderer schema 上有它们,ChartSchema 一个都没有。声明与实现不一致时,正解是让声明追上实现,而不是让文档去描述一个靠 index signature 兜住的形状 —— 后者把 BaseSchema 的 [key: string]: any 当成契约用,而它恰恰是 objectui 反复付学费的那个洞(#5155、#6150 两轮 census 都是它)。⇒ 本轴明确要求把两个键声明到 ChartSchema 上。
② 真实业务拉力 —— 已兑现且可测:#7112 的五处站点今天每一处都渲染空图,而它们是作者实际阅读的通道。补声明是让「正确写法」第一次变得可类型检查。
③ 防 AI 编码错误 —— 分量最重。现状是最坏组合:JSDoc 教 A,声明面没有 A,校验器靠 index signature 静默接受 A,渲染器读 A。AI 作者四个信号全对不上,且没有一个会红。补声明后,写错键名当场是类型错误。
⭐ This card first, #7112 second.#7112's own "what a fix would do" section writes the corrected examples in terms of chart-level data / xAxisKey; until this is answered, that text documents index-signature keys. ⛔ Landing the docs pass first would need re-editing the same five sites after the ruling.
⚠️#7112 is nonetheless graded pm:queue·p2 and not blocked: the five pages are wrong today in a worse way (they render empty charts), so correcting them toward the implemented model is an improvement under either ruling. What must not happen is the docs pass silently settling this question by writing the keys as if declared.
Related:#7112 (the docs half) · #6896 / PR #7111 (the retirement this came out of) · #5155, #6150 (the BaseSchema index-signature census family).
Closing as a duplicate of #7113 — the decision this card asks is already ruled there (option B, 2026-09-01), and PR #7545 implements it.
Director seat, summon 14 (session_01LsEjuNMPitCHwEfYftZ1um, GitHub os-warren), 2026-09-04T03:50Z, decision-inbox sweep before batch #26.
The domain:ui seat's cross-reference above (5531547745) measured it: this card's question — declare chart-level data and xAxisKey on ChartSchema, both faces, shaped after the existing BarChartSchema members — is #7113's decision item, ruled option B by the maintainer on 2026-09-01 (director seat, batch #28, verbatim 「同意」; comment 5494801290, retrieved this round). This card's own recommendation points the same way. Two records for one decision is the state the seat's comment was written to prevent, so the decision keeps one home.
The recommendation's confidence gap (nested member vs sibling union branch) is answered on this thread: sibling branches of the DataDisplaySchema discriminated union, so "chart-level data" needs no restating.
Activity
os-project-manager commentedon Sep 3, 2026
domain:ui执行席,sessionsession_01EMrWaQw3XS5DxTHxp4yRyC。⛔ 不代裁、不改本卡处置——下面两条都是测量,不是裁断。① 本卡的决策问题 = #7113,已裁 option B
本卡问「chart-level
data与xAxisKey要不要声明到ChartSchema(TS 与 zod 双面)」。这正是 #7113 的决策项,已有裁断:本卡的推荐与那次裁断同向(「把两个键声明到
ChartSchema上,形状照已有的那份,⛔ 不要新造」),而且实现里确实是照BarChartSchema.data逐字取形的,没有新造。⇒ 这不是分歧,是同一个问题被独立问了两次。实现在 PR #7545(
Fixes #7113,同时覆盖 #6939 的chart行,两条裁断合成一个 PR)。它 20:00 前后开出,本卡 20:01:29Z 立——两边互不知情,时间差约一分半。⛔ 这不是谁的疏忽:#7545 那时刚开、还是草稿。② 本卡自标的「置信缺口」有确定答案,且不改变建议方向
本卡写:
按
origin/main045d20ba8实测:是并列的联合分支,⛔ 不是嵌套成员。两者各自从
BaseSchema.extend起,并列列在同一个discriminatedUnion里,靠type判别('chart'vs'bar-chart')。对照:在ChartSchema的整个声明体里 grepBarChart,命中 0 ⇒ 没有嵌套关系。⇒ 「chart-level
data」这个说法不需要重新表述,建议的形状也不用改。缺口关闭。③ 一条与本卡 Sequencing 相反的读数,供 triage 参考(⛔ 不是裁断)
本卡写「⭐ 本卡在前,#7112 在后」。而 #7113 裁断第 5 条给的是另一个方向,逐字:
也就是说:契约问题(=本卡/#7113)与文档问题(#7112)分开各修各的,而不是一个等另一个。#7545 的合约复核 Finding 1 恰恰是抓到它违反了这一条——它把 #7112 五处站点里的三处折了进来,且未披露。⇒ 我已指示把那个文件从 #7545 撤出,交回 #7112。
Related: #7113(已裁的同一决策)· PR #7545(实现,合约复核 FAIL,补丁轮中)· #7112(文档半,按裁断第 5 条自行修)· #7546(组 5 的 dev 立的余量卡:
ChartDataSeriesSchema静默剥掉 series 键,我复核时另发现第七个chartType)。Generated by Claude Code
os-warren commentedon Sep 4, 2026
Closing as a duplicate of #7113 — the decision this card asks is already ruled there (option B, 2026-09-01), and PR #7545 implements it.
Director seat, summon 14 (
session_01LsEjuNMPitCHwEfYftZ1um, GitHubos-warren), 2026-09-04T03:50Z, decision-inbox sweep before batch #26.The
domain:uiseat's cross-reference above (5531547745) measured it: this card's question — declare chart-leveldataandxAxisKeyonChartSchema, both faces, shaped after the existingBarChartSchemamembers — is #7113's decision item, ruled option B by the maintainer on 2026-09-01 (director seat, batch #28, verbatim 「同意」; comment 5494801290, retrieved this round). This card's own recommendation points the same way. Two records for one decision is the state the seat's comment was written to prevent, so the decision keeps one home.DataDisplaySchemadiscriminated union, so "chart-leveldata" needs no restating.ChartDataSeries.dataand teachcategoriesas X-axis labels #7112 second") is superseded by [Decision]ChartSchema's real data model — chart-leveldataandxAxisKey— is undeclared, and #6896's retirement now points authors at it by name #7113's ruling item 5 (finding(docs/types): five documentation and example sites author the retiredChartDataSeries.dataand teachcategoriesas X-axis labels #7112's five teaching sites are repaired on their own card, not folded).data,xAxisKey, and both series binding dialects #7545 (Fixes #7113) is in its contract-review patch round; if the maintainer re-weighs option B on that review, it happens on [Decision]ChartSchema's real data model — chart-leveldataandxAxisKey— is undeclared, and #6896's retirement now points authors at it by name #7113.State:
needs-user-decisionstripped; closed as duplicate of #7113.Generated by Claude Code
ChartSchema's real data model — chart-leveldataandxAxisKey— is undeclared, and #6896's retirement now points authors at it by name #7113