Found while implementing #5043 (PR #6212). Filed unassigned, not claiming.
What was already fixed, and what was left
The new check:readme-exports gate's first run over the tree flagged two wrong-path bindings in packages/core/src/adapters/README.md:
packages/core/src/adapters/README.md:21 -- 'createObjectStackAdapter' is exported by @object-ui/data-objectstack, not by @object-ui/core
packages/core/src/adapters/README.md:44 -- 'ObjectStackAdapter' is exported by @object-ui/data-objectstack, not by @object-ui/core
PR #6212 changed those two import paths, because that fix is unambiguous — the names are real, @object-ui/data-objectstack exports both, and that package's own JSDoc example spells import { ObjectStackAdapter } from '@object-ui/data-objectstack'.
The rest of the page was deliberately left alone, and it is stale in a way a name-set gate structurally cannot see.
The residue
packages/core/src/adapters/ now contains:
ApiDataSource.ts ValueDataSource.ts batchTransaction.ts resolveDataSource.ts index.ts __tests__/
There is no ObjectStack adapter in it. The whole README is about one:
- the title section is
## ObjectStack Adapter, and ### Features, ### Usage, ### Advanced Usage, ### Filter Conversion, #### Supported Filter Operators, ### Query Parameter Mapping and ### Example with Sorting are all about that adapter's behaviour; ## Available Adapters at the end lists exactly one entry, ObjectStackAdapter, and says "more adapters coming soon" — while the four adapters that actually live in this directory are named nowhere on the page;- the filter-operator and query-parameter tables document
@object-ui/data-objectstack's translation layer, so they are a second copy of that package's documentation living under packages/core, free to drift from it silently.
The one section that is genuinely about this directory is ## Creating Custom Adapters (implement DataSource<T> from @object-ui/types), and its snippet imports only from @object-ui/types, so it is correct as written.
Why it is worth a card rather than a drive-by edit
This is a placement question, not a typo, and it has at least three defensible answers:
- A. Move the ObjectStack content to
packages/data-objectstack/README.md (or fold it into that package's docs, checking first what is already duplicated there) and leave packages/core/src/adapters/README.md documenting the four adapters that are actually in the directory. - B. Delete the page and let
packages/data-objectstack own the material, if that package already carries an equivalent — worth measuring before choosing, since two of the tables may already exist there. - C. Keep it as a pointer: a short page naming the four local adapters plus a link out.
Picking one needs a look at what packages/data-objectstack's own docs already say, which is more than the #5043 card's scope (it judged import names) and more than an unambiguous repair.
Blast radius
packages/core ships its src/ in the npm tarball, so this page is published to consumers, not an internal note. A reader following ## Available Adapters learns that ObjectUI has one adapter and that it comes from @object-ui/core — the second half of which #6212 has now corrected in the snippets but not in the prose.
Bound of the gate that found it
check:readme-exports judges import names against the real export surface. It cannot see stale prose, a heading about a moved module, or a table duplicating another package's docs — every symbol named in those is either real or not an import at all. This card is that blind spot's user-visible half, the same way #5057 was for authorable-key surfaces.
Grading
For PM triage. Labelled finding: nothing breaks at runtime today, and the copy-paste defect (the wrong import path) is already repaired. What remains is published documentation that describes the wrong package.
Found while implementing #5043 (PR #6212). Filed unassigned, not claiming.
What was already fixed, and what was left
The new
check:readme-exportsgate's first run over the tree flagged twowrong-pathbindings inpackages/core/src/adapters/README.md:PR #6212 changed those two import paths, because that fix is unambiguous — the names are real,
@object-ui/data-objectstackexports both, and that package's own JSDoc example spellsimport { ObjectStackAdapter } from '@object-ui/data-objectstack'.The rest of the page was deliberately left alone, and it is stale in a way a name-set gate structurally cannot see.
The residue
packages/core/src/adapters/now contains:There is no ObjectStack adapter in it. The whole README is about one:
## ObjectStack Adapter, and### Features,### Usage,### Advanced Usage,### Filter Conversion,#### Supported Filter Operators,### Query Parameter Mappingand### Example with Sortingare all about that adapter's behaviour;## Available Adaptersat the end lists exactly one entry,ObjectStackAdapter, and says "more adapters coming soon" — while the four adapters that actually live in this directory are named nowhere on the page;@object-ui/data-objectstack's translation layer, so they are a second copy of that package's documentation living underpackages/core, free to drift from it silently.The one section that is genuinely about this directory is
## Creating Custom Adapters(implementDataSource<T>from@object-ui/types), and its snippet imports only from@object-ui/types, so it is correct as written.Why it is worth a card rather than a drive-by edit
This is a placement question, not a typo, and it has at least three defensible answers:
packages/data-objectstack/README.md(or fold it into that package's docs, checking first what is already duplicated there) and leavepackages/core/src/adapters/README.mddocumenting the four adapters that are actually in the directory.packages/data-objectstackown the material, if that package already carries an equivalent — worth measuring before choosing, since two of the tables may already exist there.Picking one needs a look at what
packages/data-objectstack's own docs already say, which is more than the #5043 card's scope (it judged import names) and more than an unambiguous repair.Blast radius
packages/coreships itssrc/in the npm tarball, so this page is published to consumers, not an internal note. A reader following## Available Adapterslearns that ObjectUI has one adapter and that it comes from@object-ui/core— the second half of which #6212 has now corrected in the snippets but not in the prose.Bound of the gate that found it
check:readme-exportsjudges import names against the real export surface. It cannot see stale prose, a heading about a moved module, or a table duplicating another package's docs — every symbol named in those is either real or not an import at all. This card is that blind spot's user-visible half, the same way #5057 was for authorable-key surfaces.Grading
For PM triage. Labelled
finding: nothing breaks at runtime today, and the copy-paste defect (the wrong import path) is already repaired. What remains is published documentation that describes the wrong package.