Observation-class finding, noticed while implementing #5047. Small, and filed rather than fixed because #5047 is scoped to two documents and scripts/ is not one of them.
Measured on origin/main at 958d757.
The stale reason
scripts/check-doc-component-types.mjs:328-331:
'content/docs/plugins/plugin-report.mdx': {matrix: 'ReportInput kind — a report definition\'s shape, sibling of `joined` / `summary`.',joined: 'ReportInput kind — a report definition\'s shape, sibling of `matrix` / `summary`.',},ReportInput is not on the spec's export surface at @objectstack/spec 17.0.0 — zero occurrences in dist/ui/index.d.ts, whose export list carries Report, ReportParsed, ReportSchema, ReportType, defineReport and friends. The …Input aliases were retired at rc.6 and the bare name moved onto the z.input side; packages/types/src/spec-report.ts:42-50 records that rename in detail.
The exemptions themselves are still correct and live — matrix and joined really are report-type discriminants rather than component types, and #5047's PR keeps both literals in that file, so neither entry goes stale. Only the reason text names a type that no longer exists.
Why it is worth a card at all
This gate's own header argues the point better than I can: an exemption is worth what its evidence is worth, and a wrong canonical-claim is "a planted premise for the next session" (check-spec-symbol-derivation.mjs, same argument). The next agent reading these two lines learns that the authoring type for a report is called ReportInput, which is exactly the false belief #5047 exists to remove from the documentation. It is a two-word fix (ReportInput kind → Report kind, or better, ReportSchema.type member); the reason to file rather than drive-by is scope, not size.
Recheck
sed -n '328,331p' scripts/check-doc-component-types.mjs
grep -c "ReportInput" node_modules/.pnpm/@objectstack+spec@17.0.0*/node_modules/@objectstack/spec/dist/ui/index.d.ts # 0
Related: #5047 (removes the same false symbol from the two documents), #5106 (another gap in this gate).
Observation-class finding, noticed while implementing #5047. Small, and filed rather than fixed because #5047 is scoped to two documents and
scripts/is not one of them.Measured on
origin/mainat958d757.The stale reason
scripts/check-doc-component-types.mjs:328-331:ReportInputis not on the spec's export surface at@objectstack/spec17.0.0 — zero occurrences indist/ui/index.d.ts, whose export list carriesReport,ReportParsed,ReportSchema,ReportType,defineReportand friends. The…Inputaliases were retired at rc.6 and the bare name moved onto thez.inputside;packages/types/src/spec-report.ts:42-50records that rename in detail.The exemptions themselves are still correct and live —
matrixandjoinedreally are report-type discriminants rather than component types, and #5047's PR keeps both literals in that file, so neither entry goes stale. Only the reason text names a type that no longer exists.Why it is worth a card at all
This gate's own header argues the point better than I can: an exemption is worth what its evidence is worth, and a wrong canonical-claim is "a planted premise for the next session" (
check-spec-symbol-derivation.mjs, same argument). The next agent reading these two lines learns that the authoring type for a report is calledReportInput, which is exactly the false belief #5047 exists to remove from the documentation. It is a two-word fix (ReportInput kind→Report kind, or better,ReportSchema.typemember); the reason to file rather than drive-by is scope, not size.Recheck
Related: #5047 (removes the same false symbol from the two documents), #5106 (another gap in this gate).