Skip to content

docs(core): name report-schema.mdx's subject ReportComponentSchema - #6192

Merged
yinlianghui-tw merged 1 commit into
mainfrom
claude/issue-6171-report-schema-name
Aug 25, 2026
Merged

docs(core): name report-schema.mdx's subject ReportComponentSchema#6192
yinlianghui-tw merged 1 commit into
mainfrom
claude/issue-6171-report-schema-name

Conversation

@yinlianghui-tw

Copy link
Copy Markdown
Collaborator

Fixes#6171

Renames the subject of content/docs/core/report-schema.mdx from ReportSchema to ReportComponentSchema. Prose and frontmatter only — no source change, no fence touched.

Why this is more than a typo

ReportSchema is not a dead name, so a reader following it landed on a real but wrong declaration rather than on nothing. Stated from live readings in this tree rather than inherited from the card:

  • @objectstack/spec 17.2.0 does export ReportSchema, for the dataset-bound report shape shipped as json-schema/ui/Report.json. Its top-level properties measure as name / label / description / type / dataset / rows / columns / values / runtimeFilter / order / drilldown / chart / blocks / … — a different shape, and the one content/docs/plugins/plugin-report.mdx documents, where the name is correct and untouched here.
  • @object-ui/types does not export the bare name. It imports the spec symbol and deliberately re-exports it prefixed — packages/types/src/spec-report.ts:103, export const SpecReportSchema = SpecReportSchema_;, under a comment reading "Spec* prefix to avoid collision with legacy reports.ts". The repo had already renamed around this collision everywhere except the prose on this page.
  • The shape the page actually documents is ReportComponentSchema, declared at packages/types/src/reports.ts:359.

What changed — the set was measured, not taken on trust

The card named three sites; the measured set is four, all prose/frontmatter, none inside a fence:

LineBefore
2frontmatter title: "Report Schema (ReportSchema)"
10H1 lead — "The ReportSchema enables creating…"
14Overview — "ReportSchema provides:"
458Use Cases — "ReportSchema is perfect for:"

Lines 14 and 458 are the two the card's explicit list did not name. After the edit: exact-word ReportSchema on the page = 0 (was 4); ReportComponentSchema = 12 (was 8, all 8 pre-existing ones left byte-identical — PR #6168 landed those tables and the example fence, and re-touching them would stack this diff on a sweep for no reason).

The exclusion is measured, not asserted.git status --porcelain reports exactly 1 changed file, and content/docs/plugins/plugin-report.mdx re-measures to the same sha256 6003c22e…e1bf3 it had before the edit, still carrying its 1 correct ReportSchema occurrence.

Verification — at final head 0f04ff605

Exit codes captured by redirect before any pipe; each gate quoted by its own verdict line, never a bare $?.

GateExitIts own verdict line
check:doc-snippets0"Semantic phase: 251 of 251 block(s) judged, 0 failed." / "Every covered documentation snippet compiles against the built types."
check:doc-types0"✅ Every documented component type is registered." (184 doc files, 1057 code blocks, 895 type literals)
docs:check-links0"Links are valid across 15 scan roots."
check:control-bytes0"✅ check-control-bytes: OK (scanned 5110 tracked text file(s); skipped 85 binary)."
check:doc-fences0"✅ every TypeScript block in 223 document(s) is fenced ts/tsx/typescript, except 83 declared file(s) carrying 105 block(s) … (⛔ SHRINK-ONLY)"

check:doc-fences was not in the dispatch list — it was added by deriving scope from each gate's own configuration (DOCS_ROOT = 'content/docs'), which covers this file. Its #5867 shrink-only ratchet reading is unmoved: this diff touches no fence.

Also note the dispatch named the gate check:doc-snippet-types; the script exists but the package script is spelled check:doc-snippets (scripts/check-doc-snippet-types.mjs). The real spelling is what ran.

First run of check:doc-snippets exited 1 and was not a failure of this diff — it printed "The snippet program was NOT run: the packages it resolves against are not built". After turbo run build (43/43 successful) it re-ran green. Recorded because the unbuilt-tree exit is indistinguishable from a real failure at the exit-code level.

Changeset: none, per the presence gate's own verdict — objectui has no skip-changeset label mechanism, so this verdict is the declaration form:

✅ No source of a released package changed in this range, so no changeset is owed.

Root vitest (per objectui#3378, never package-scoped) — run narrowed, and the narrowing is declared as a measurement rather than an omission:

  1. Population read from vitest's own config, not guessed: vitest list --filesOnly = 1971 test files.
  2. Of that exact 1971-file population, 0 reference core/report-schema.
  3. Config invariance: vitest.config.mts include globs are packages/**, examples/**, eslint-rules/**, scripts/** — the string content/docs appears 0 times in the config, so no project can pick up an .mdx under it.

The one test file that even mentions this page does so in a prose comment and never reads it from disk; it was run anyway: 1 passed (1), 5 tests passed.

In-flight interest on this page

Per the repo's shared-surface guidance, two other cards hold interest in content/docs/core/report-schema.mdx:

Neither is addressed by this PR; both remain open.


Generated by Claude Code

The page called its subject `ReportSchema` in four prose/frontmatter
sites while its own example fence, its property tables (PR #6168) and
the actual declaration all say `ReportComponentSchema`
(packages/types/src/reports.ts:359).
`ReportSchema` is not a dead name: `@objectstack/spec` exports it for
the dataset-bound report shape (json-schema/ui/Report.json — name /
label / dataset / rows / columns / values), which is what
content/docs/plugins/plugin-report.mdx documents. A reader following
the old name landed on a real but wrong declaration. `@object-ui/types`
already re-exports that spec symbol under the prefixed name
`SpecReportSchema` "to avoid collision", so the prose was the last
place using the bare name for the component shape.
Prose and frontmatter only. No source change, no fence touched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019b5UBNMtTzKbVtZZGvFuxe
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

@yinlianghui-tw@claude