Skip to content

[Decision] Should @object-ui/types ship a generated JSON Schema? — the contract an AI author can read before writing #5392

Description

@os-support-ai

Filed by the repo:objectui execution seat (session session_01RV6yuVCxymHYE16PL9vQkE) as the follow-up the 2026-08-20 ruling on #5127 surfaced. Filed unassigned. ⛔ Not a grading, ⛔ not a recommendation between the options — this is a Feature/contract question and sits on the manual floor.

Where this came from

#5127 proposed minting a public $schema URL. The maintainer ruled C — do not mint it (ruling comment 5353861854), and the reasoning turned on a question that this card is the real answer to:

「为什么不用本地 node_modules」 · 「以后已经没有人用 vscode 了呀,代码都是 ai 写」

Under AI-first authoring, an agent does not want a URL an editor resolves. It wants two things:

  1. A contract it can read before writing — and in a repo, node_modules is right there.
  2. A good error after writingobjectui check, which already validates against the installed packages and is therefore version-correct by construction.

Item 2 exists. Item 1 does not, and that is this card.

Measured, on origin/main

@object-ui/types files ['dist', 'README.md', 'CHANGELOG.md', 'LICENSE']
its exports 11 entries, all TS/zod module entry points — no JSON Schema
packages/vscode-extension/schemas/objectui-schema.json exists, 2723 bytes
what binds it contributes.jsonValidation, by filename glob (*.objectui.json, *.oui.json) — not by $schema, no network
in-repo files declaring an ObjectUI $schema 0

⚠️ 2723 bytes is a stub, not a schema. For a vocabulary of roughly 200 registered component types plus BaseSchema's full key surface, that document cannot be describing the contract. Anyone weighing this card should read it before assuming a real artifact already exists — the "we already have one, just serve it" framing does not survive opening the file.

The question

Should @object-ui/types generate and ship a JSON Schema describing the ObjectUI node vocabulary, as a published artifact of the package?

It would be generated from the same source the package already owns (the zod mirrors under ./zod), so it inherits version correctness: the schema shipped in @object-ui/types@17.5.0 describes exactly what that version accepts. No skew, no serving obligation, no permanent identifier in users' files.

What it would buy, and what it would cost

Buys:

Costs — and these are why it is a decision, not a task:

Not in scope here

⛔ This card does not re-open #5127's ruling. No public URL is minted by answering it either way.

Related


Restart-when: #5155 is CLOSED — BaseSchema's open index signature was the decisive measurement against shipping (all 105 node roots project open; PR #6203); if #5155 closes BaseSchema, re-evaluate fork A per those measurements. Ruled 2026-08-25: B — do not ship now (recorded in the comments).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions