From 2f220531544542750c2bb6e8732434d969ca14c3 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 3 Oct 2026 14:42:34 +0000 Subject: [PATCH] docs(skills): type three marked fences' schema as SchemaRendererProps['schema'] (objectui#11543) Three `os:check` fences in the objectui skill guides (auth-permissions, data-integration, schema-expressions) declared `schema: BaseSchema` and passed it to `SchemaRenderer`. V1 (objectui#11466) narrows that prop to the declared-node union, which refuses a `BaseSchema` with TS2322, so the Skill Example Check goes red on V1's branch. Each fence now declares the prop's own type, `SchemaRendererProps['schema']`, imported as a type from `@object-ui/react`. It compiles on main today and after V1 lands, and it follows the prop by reference. The `os:check` markers are untouched; the edit is line-neutral. Claude-Session: https://claude.ai/code/session_016tKoy8NJa35Yih1FdzrVmn Co-authored-by: Claude --- skills/objectui/guides/auth-permissions.md | 4 ++-- skills/objectui/guides/data-integration.md | 4 ++-- skills/objectui/guides/schema-expressions.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/skills/objectui/guides/auth-permissions.md b/skills/objectui/guides/auth-permissions.md index b9f4672f6a..2bd73cd0e1 100644 --- a/skills/objectui/guides/auth-permissions.md +++ b/skills/objectui/guides/auth-permissions.md @@ -296,9 +296,9 @@ it makes `${!flag}` permanently `false` and shows the button to everyone: ```tsx import { usePermissions } from '@object-ui/permissions' import { PredicateScopeProvider, SchemaRenderer } from '@object-ui/react' -import type { BaseSchema } from '@object-ui/types' +import type { SchemaRendererProps } from '@object-ui/react' -declare const schema: BaseSchema +declare const schema: SchemaRendererProps['schema'] function ContactsPage() { const permissions = usePermissions() diff --git a/skills/objectui/guides/data-integration.md b/skills/objectui/guides/data-integration.md index 24b0962e4b..22ae208447 100644 --- a/skills/objectui/guides/data-integration.md +++ b/skills/objectui/guides/data-integration.md @@ -165,9 +165,9 @@ as an ambient **scope** instead — that is the channel `bind` and `${…}` read ```tsx import { PredicateScopeProvider, SchemaRenderer } from '@object-ui/react' -import type { BaseSchema } from '@object-ui/types' +import type { SchemaRendererProps } from '@object-ui/react' -declare const schema: BaseSchema +declare const schema: SchemaRendererProps['schema'] const staticData = { customers: [ diff --git a/skills/objectui/guides/schema-expressions.md b/skills/objectui/guides/schema-expressions.md index 3617ad9518..eda0e5610f 100644 --- a/skills/objectui/guides/schema-expressions.md +++ b/skills/objectui/guides/schema-expressions.md @@ -111,9 +111,9 @@ Every key of the `scope` you hand it becomes a root the evaluator can read: ```tsx import { PredicateScopeProvider, SchemaRenderer } from '@object-ui/react' -import type { BaseSchema } from '@object-ui/types' +import type { SchemaRendererProps } from '@object-ui/react' -declare const schema: BaseSchema +declare const schema: SchemaRendererProps['schema'] // Every name here becomes a root this page's expressions can read — `data` // included, which is now a name YOU publish rather than one the renderer binds.