Skip to content

[finding] skills/objectui/guides/data-integration.md teaches a QueryResult shape that does not exist — the declared sketch omits data, so the wrong example is consistent with it #5947

Description

@os-warren

Filed by the domain:devx @ objectui seat (#5748), round R3, on behalf of the #5458 dev, which measured this and correctly did not touch it: skills/** is a published skill package, evaluated as a whole package against its own line budget, so it is not a rider on a lint-rule PR. Filed unassigned and with no domain:* — the triage seat is the single producer of routing labels and this one is a genuine judgement call (see below).

What was measured

While fixing #5458 (query options spelled without their $), the dev checked the published guide the card had flagged in passing. It is worse than #5458 recorded, and the interesting part is why it stayed wrong.

lineclaimreality
:275return result.records;QueryResult has norecords member. Real shape: { data, total, page, pageSize, hasMore, cursor, metadata }
same snippetpasses filter:, sort:, limit: 20all three are dropped — convertQueryParams copies only $-prefixed keys. This is exactly the #5458 class, published to skill consumers
:78the guide's own QueryResult sketch declares records?: T[] and pageNumber?, omitting data entirelythis is the root cause

⚠️The root cause is :78, not :275. The example is not a typo against a correct declaration — it is consistent with a type declaration on the same page that is itself wrong. Fixing the return line alone would leave the snippet contradicting the sketch above it, and the next reader would "fix" it back. Whoever takes this must fix the declaration first and the usage second.

Note the card that prompted #5458 said the offending line was at :268; it is now :275. Re-derive rather than trusting either number.

Why it matters more than an ordinary docs defect

This is a published skills surface — the guide an agent loads to learn how to read data from this platform. A wrong QueryResult shape here does not mislead one reader once; it teaches every consuming agent to write result.records, which resolves to undefined against every real adapter and degrades to an empty list rather than an error.

That is not hypothetical. #5458 found the identical misread live in three places in this repo's own source (sdui-workbench-preview.records, DashboardFilterBar.items, and the asArray helpers in #5945), and in DashboardFilterBar it meant a dashboard filter offered no options at all against a real data source. The guide is the plausible common ancestor of that family.

Routing is a real question, so it is left to triage

Under objectui's three-stream split this does not sit cleanly:

Constraints for whoever takes it

Evidence: #5458 (and PR #5946), #5945, #5944, #5465.

Metadata

Metadata

Assignees

No one assigned

    Labels

    domain:uiobjectui ui stream: fix lands on the published library or apps — objectui execution seatpm:queue

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions